In the cloud computing paradigm, companies deliver computing resources, including both hardware and software, as a service over networks. Companies must carefully manage hardware resources to meet service level agreements while keeping costs low. Maintaining under-utilized hardware resources is costly.